package a13_Tree.MaxHeap;

import java.util.Random;

/**
 * @Author quan
 * @Description TODO
 * @Date 2023/3/30 17:01
 */
public class MaxHeapTest {
    public static void main(String[] args) {
      /*  int[] data = {24,56,3,8,14,5};
        MaxHeap heap = new MaxHeap();
        for (int i:data) {
            heap.add(i);
        }
        //添加元素
        heap.add(10);
        System.out.println(heap);*/

        //测试用例：验证写的代码的正确性
        //生成一个随机数组
        int n = 1000;
        Random random = new Random();
        int[] data = new int[n];
        for (int i = 0; i < data.length; i++) {
            data[i] = random.nextInt(100);
        }
        //依次取出堆中的最大值写为data数组，最终可以得到一个非递增数组
        MaxHeap heap = new MaxHeap(data);//创建堆
        for (int i = 0; i < data.length; i++) {
            data[i] = heap.extractMax();//每次都提取堆中的最大值
        }
        //判断 提取堆中的最大值的数组是不是一个排序数组
        System.out.println(isSorted(data));
    }
    public static boolean isSorted(int[] arr){
        for (int i = 0; i < arr.length-1; i++) {
            if(arr[i] < arr[i+1]){
                return false;
            }
        }
        return true;
    }
}
